package br.com.klis.batendoumabola.client.widgets;

import br.com.klis.batendoumabola.client.event.GaleriaAtualizadaEventHandler;
import br.com.klis.batendoumabola.shared.DadosDaImagem;
import br.com.klis.batendoumabola.shared.ImagemUrl;
import br.com.klis.batendoumabola.shared.LoginInfo;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.MouseOutEvent;
import com.google.gwt.event.dom.client.MouseOutHandler;
import com.google.gwt.event.dom.client.MouseOverEvent;
import com.google.gwt.event.dom.client.MouseOverHandler;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Widget;

public class Thumb extends Composite{
	private final InfoPanel info = new InfoPanel();
	private final Image imagem = new Image();

	public Thumb(final LoginInfo loginInfo, final DadosDaImagem dados, final GaleriaAtualizadaEventHandler galeriaHandler, final Galeria galeria) {
		this.imagem.setUrl(ImagemUrl.thumbUrl+dados.getId());
		
		imagem.addMouseOverHandler(new MouseOverHandler() {
			@Override
			public void onMouseOver(MouseOverEvent event) {
				Widget source = (Widget) event.getSource();
				info.show(source,dados);
			}
		});

		imagem.addMouseOutHandler(new MouseOutHandler() {
			@Override
			public void onMouseOut(MouseOutEvent event) {
				info.hide();
			}
		});

		imagem.addClickHandler(new ClickHandler() {
			@Override
			public void onClick(ClickEvent event) {
				ImagemRealPanel imagemRealPanel = new ImagemRealPanel(loginInfo, dados, galeria);
				imagemRealPanel.addGaleriaAtualizadaEventHandler(galeriaHandler);
				imagemRealPanel.show();
			}
		});
	}
	
	public Image getImagem() {
		return imagem;
	}
	
}
